package com.ynet.middleground.user.bean;


import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;

import com.ynet.core.common.BaseReqObj;

import java.util.Date;
import java.util.List;

/**
 * @program: 2019-10-12_userCenter
 * @description: 修改角色信息请求
 * @author: DaiGaoLe
 * @create: 2019-10-28 19:52
 **/
@Data
@ApiModel(value = "企业用户信息修改", description = "企业用户信息修改")
public class ChangeUserInfoEnterpriseBasicInfo extends BaseReqObj  {
    private static final long serialVersionUID = -5717210593016312530L;

    /*  enterpriseBasicInfo begin */
    /**
     * 用户id
     */
    @ApiModelProperty(value = "用户id", notes = "用户id", dataType = "Integer", required = true)
    @NotNull(message = "用户id不能为空")
    private Integer userId;
    
    /**
     * 邮箱
     */
    @ApiModelProperty(value = "邮箱", notes = "邮箱", dataType = "String")
    private String email;

    /**
     * 证书类型
     */
    @ApiModelProperty(value = "证书类型", notes = "证书类型", dataType = "String")
    private String certificateType;

    /**
     * 法定代表人姓名
     */
    @ApiModelProperty(value = "法定代表人姓名", notes = "法定代表人姓名", dataType = "String")
    private String legalRepresentativeName;

    /**
     * 法定代表人证件类型
     */
    @ApiModelProperty(value = "法定代表人证件类型：04-身份证", notes = "法定代表人证件类型：04-身份证", dataType = "String")
    @Pattern(regexp = "^[\\x01-\\x7f]*$", message = "不能有中文字符")
    @Size(min = 2, max = 2, message = "长度为2")
    private String lrnCertificateType;

    /**
     * 法定代表人证件号码
     */
    @ApiModelProperty(value = "法定代表人证件号码", notes = "法定代表人证件号码", dataType = "String")
    private String lrnCertificateNo;

    /**
     * 管理员姓名

    @ApiModelProperty(value = "管理员姓名", notes = "管理员姓名", dataType = "String")
    private String adminName;
     */
    /**
     * 管理员手机号码

    @ApiModelProperty(value = "管理员手机号码", notes = "管理员手机号码", dataType = "String")
    private String adminTelephone;
     */
    /**
     * 证件类型
     */
    @ApiModelProperty(value = "证件类型：04-身份证", notes = "证件类型：04-身份证", dataType = "String")
    @Pattern(regexp = "^[\\x01-\\x7f]*$", message = "不能有中文字符")
    @Size(min = 2, max = 2, message = "长度为2")
    private String adminCertificateType;

    /**
     * 证件号码
     */
    @ApiModelProperty(value = "证件号码", notes = "证件号码", dataType = "String")
    private String adminCertificateNo;

    /**
     * 管理员邮箱

    @ApiModelProperty(value = "管理员邮箱", notes = "管理员邮箱", dataType = "String")
    private String adminEmail;
     */
    /**
     * 营业执照(影像资料)
     */
    @ApiModelProperty(value = "营业执照(影像资料)", notes = "营业执照(影像资料)", dataType = "String")
    private String businessLicenseUrl;

    /**
     * 法定代表人代表证照(影像资料)
     */
    @ApiModelProperty(value = "法定代表人代表证照(影像资料)", notes = "法定代表人代表证照(影像资料)", dataType = "String")
    private String lrnLicenseUrl;

    /**
     * 企业注册地址
     */
    @ApiModelProperty(value = "企业注册地址", notes = "企业注册地址", dataType = "String")
    private String entRegeditAddress;

    /**
     * 经营地址
     */
    @ApiModelProperty(value = "经营地址", notes = "经营地址", dataType = "String")
    private String businessAddress;

    /**
     * 银行账号
     */
    @ApiModelProperty(value = "银行账号", notes = "银行账号", dataType = "String")
    private String bankAccount;

    /**
     * 账户名称
     */
    @ApiModelProperty(value = "账户名称", notes = "账户名称", dataType = "String")
    private String accountName;

    /**
     * 开户行
     */
    @ApiModelProperty(value = "开户行,对照中台提供字典上传", notes = "开户行,对照中台提供字典上传", dataType = "String")
    @Size(max = 255, min = 0, message = "字段长度为255")
    private String openBank;

    /**
     * 开户省
     */
    @ApiModelProperty(value = "开户省,对照中台提供字典上传", notes = "开户省,对照中台提供字典上传", dataType = "String")
    @Size(max = 100, min = 0, message = "字段长度为100")
    private String openAccountProvince;

    /**
     * 开户市
     */
    @ApiModelProperty(value = "开户市,对照中台提供字典上传", notes = "开户市,对照中台提供字典上传", dataType = "String")
    private String openingAccountCity;

    /**
     * 开户网点
     */
    @ApiModelProperty(value = "开户网点", notes = "开户网点", dataType = "String")
    private String openBranch;

    /**
     * 固定电话
     */
    @ApiModelProperty(value = "固定电话", notes = "固定电话", dataType = "String")
    private String fixedTelephone;

    /**
     * 开户许可证(影像资料)
     */
    @ApiModelProperty(value = "开户许可证(影像资料)", notes = "开户许可证(影像资料)", dataType = "String")
    private String accountOpenPermitUrl;

    /**
     * 银行账户信息证明(影像资料)
     */
    @ApiModelProperty(value = "银行账户信息证明(影像资料)", notes = "银行账户信息证明(影像资料)", dataType = "String")
    private String bankAccountInfoCertUrl;

    /**
     * 企业开票信息(影像资料)
     */
    @ApiModelProperty(value = "企业开票信息(影像资料)", notes = "企业开票信息(影像资料)", dataType = "String")
    private String enterpriseBillingInformationUrl;

    /**
     * 企业类型
     */
    @ApiModelProperty(value = "企业类型", notes = "企业类型", dataType = "String")
    @Size(max = 20, min = 0, message = "长度为20")
    private String enterpriseType;

    /**
     * 企业状况
     */
    @ApiModelProperty(value = "企业状况", notes = "企业状况", dataType = "String")
    private String businessConditions;

    /**
     * 主营业务
     */
    @ApiModelProperty(value = "主营业务", notes = "主营业务", dataType = "String")
    private String mainBusiness;

    /**
     * 国标行业分类
     */
    @ApiModelProperty(value = "国标行业分类", notes = "国标行业分类", dataType = "String")
    private String internationalIndustryClass;

    /**
     * 客户层授信总额度
     */
    @ApiModelProperty(value = "客户层授信总额度", notes = "客户层授信总额度", dataType = "String")
    private String userCreditAmount;
    
    /**
     * 冷链客户信息
     */
    @ApiModelProperty(value = "冷链客户信息", notes = "冷链客户信息")
    private List<ColdchainReq> coldChainList;
    
    /**
     * 金蝶客户号
     */
    @ApiModelProperty(value = "金蝶客户号", notes = "金蝶客户号")
    private String kingdeeUserCode;
    
    /**
     * 金蝶客户名称
     */
    @ApiModelProperty(value = "金蝶客户名称", notes = "金蝶客户名称")
    private String kingdeeUserName;
    
    /**
     * 企业名称
     */
    @ApiModelProperty(value = "企业名称", notes = "企业名称", dataType = "String")
    private String companyName;
    
    /**
     * 法定代表人授权委托书（影像资料）URL
     */
    @ApiModelProperty(value = "法定代表人授权委托书（影像资料）URL", notes = "法定代表人授权委托书（影像资料）URL", dataType = "String")
    private String authorizationbookurl;
    
    /**
     * 联系电话
     */
    @ApiModelProperty(value = "联系电话", notes = "联系电话", dataType = "String")
    private String telephone;

    /**
     * 证件种类,00-统一社会信用代码,01-组织机构代码证,营业执照,税务登记证,04-身份证
     */
    @ApiModelProperty(value = "证件种类,00-统一社会信用代码,01-组织机构代码证,营业执照,税务登记证,04-身份证", notes = "证件种类,00-统一社会信用代码,01-组织机构代码证,营业执照,税务登记证,04-身份证", dataType = "String")
    @Pattern(regexp = "^[\\x01-\\x7f]*$", message = "不能有中文字符")
    @Size(min = 2, max = 2, message = "长度为2")
    private String papersType;

    /**
     * 证件编号,当证件种类为00时该字段为统一社会信用代码,01时该字段为组织机构代码,04时为身份证
     */
    @ApiModelProperty(value = "证件编号,当证件种类为00时该字段为统一社会信用代码,01时该字段为组织机构代码,04时为身份证", notes = "证件编号,当证件种类为00时该字段为统一社会信用代码,01时该字段为组织机构代码,04时为身份证", dataType = "String")
    private String papersNo;
    
    /**
     * 营业执照编号
     */
    @ApiModelProperty(value = "营业执照编号", notes = "营业执照编号", dataType = "String")
    private String bussinessLicenseNo;

    /**
     * 税务登记证编号
     */
    @ApiModelProperty(value = "税务登记证编号", notes = "税务登记证编号", dataType = "String")
    private String taxRegistrationNo;
    
    /**
     * 开户行行号
     */
    @ApiModelProperty(value = "开户行行号", notes = "开户行行号", dataType = "String")
    private String openBankNo;

    /**
     * 邮寄地址
     */
    @ApiModelProperty(value = "邮寄地址", notes = "邮寄地址", dataType = "String")
    private String userAddress;
    
    /**
     * 上级企业id
     */
    @ApiModelProperty(value = "上级企业id", notes = "上级企业id", dataType = "Integer")
    private Integer parentId;

    
    /**
     * 证件有效期起,当证件种类为00时该字段为统一社会信用代码有效期,01时该字段为组织机构代码有效期
     */
    @ApiModelProperty(value = "证件有效期起,当证件种类为00时该字段为统一社会信用代码有效期,01时该字段为组织机构代码有效期", notes = "证件有效期起,当证件种类为00时该字段为统一社会信用代码有效期,01时该字段为组织机构代码有效期", dataType = "java.util.Date")
    private Date cerSdate;

    /**
     * 证件有效期止,当证件种类为00时该字段为统一社会信用代码有效期,01时该字段为组织机构代码有效期
     */
    @ApiModelProperty(value = "证件有效期止,当证件种类为00时该字段为统一社会信用代码有效期,01时该字段为组织机构代码有效期,长期为9999-12-31", notes = "证件有效期止,当证件种类为00时该字段为统一社会信用代码有效期,01时该字段为组织机构代码有效期,长期为9999-12-31", dataType = "java.util.Date")
    private Date cerEdate;
    
    /**
     * 营业执照有效期起
     */
    @ApiModelProperty(value = "营业执照有效期起", notes = "营业执照有效期起", dataType = "java.util.Date")
    private Date bussinessLicenseNoSdate;

    /**
     * 营业执照有效期止
     */
    @ApiModelProperty(value = "营业执照有效期止,长期为9999-12-31", notes = "营业执照有效期止,长期为9999-12-31", dataType = "java.util.Date")
    private Date bussinessLicenseNoEdate;
    

    /**
     * 税务登记证有效期起
     */
    @ApiModelProperty(value = "税务登记证有效期起", notes = "税务登记证有效期起", dataType = "java.util.Date")
    private Date taxRegistrationNoSdate;

    /**
     * 税务登记证有效期止
     */
    @ApiModelProperty(value = "税务登记证有效期止,长期为9999-12-31", notes = "税务登记证有效期止,长期为9999-12-31", dataType = "java.util.Date")
    private Date taxRegistrationNoEdate;

    /**
     * 职工人数
     */
    @ApiModelProperty(value = "企业从业人员人数", notes = "企业从业人员人数", dataType = "String")
    private String employeeAmount;

    /**
     * 上年度营业额
     */
    @ApiModelProperty(value = "上年营业收入（万元）", notes = "上年营业收入（万元）", dataType = "String")
    private String lastYearTurnover;
    
    /**
     * 山港易付id
     */
    @ApiModelProperty(value = "山港易付id", notes = "山港易付id", dataType = "String")
    private String sgyfId;
    
    /**
     * 附件
     */
    @ApiModelProperty(value = "企业附件信息", notes = "企业附件信息")
    private List<EnterpriseEnclosureReq> enclosureLists;

    @ApiModelProperty(value = "业态公司id", notes = "业态公司id")
    private Integer formatId;
    /*  enterpriseBasicInfo begin */
}
